package behavioral.command;

public class Client {

    public static void main(String[] args) {
        //1.构建出一个具体任务的接受者
        AudioPlayer pPlayer = new AudioPlayer();

        //2.每个任务的具体执行者实际上都是依赖于接受者，命令执行者都需要依赖接受者
        ICommand pPlayCommand = new PlayCommand(pPlayer);
        ICommand pStopCommand = new StopCommand(pPlayer);
        ICommand pResetCommand = new ResetCommand(pPlayer);

        //3.对于客户端来说，使用简单是最重要的，他只需要通过键盘进行操作即可，不需要具体执行时怎么进行或是由谁进行
        KeyBoard pKeyBoard = new KeyBoard();
        pKeyBoard.setPlayCommand(pPlayCommand);
        pKeyBoard.setStopCommand(pStopCommand);
        pKeyBoard.setResetCommand(pResetCommand);

        //4.对于客户端来说，具体执行任务，只需要按下键盘即可
        pKeyBoard.play();
        pKeyBoard.stop();
        pKeyBoard.reset();
    }

}
